/**
 * 
 */
package org.yelongframework.model.generator.pdm;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.yelongframework.model.generator.manager.GenModelAndTable;
import org.yelongframework.pdm.PdmResolveException;
import org.yelongframework.pdm.PdmResolver;

/**
 * 模型生成PDM文件解析器
 * 
 * @since 1.0.0
 */
public interface ModelGeneratePdmResolver {

	// ==================================================解析==================================================

	/**
	 * 解析PDM为生成模型表
	 * 
	 * @param inputStream PDM文件流
	 * @return 生成器模型表集合
	 * @throws PdmResolveException PDM解析异常
	 * @throws IOException         流异常
	 */
	List<GenModelAndTable> resolve(InputStream inputStream) throws PdmResolveException, IOException;

	// ==================================================PDM解析器==================================================

	/**
	 * @return PDM解析器
	 */
	PdmResolver getPdmResolver();

}
